ох =)
расскажу, что если прочитать все 500 комментариев про мемхак, то там есть 1 нормальный ответ про то как его включить
Мне потребовалось 3 раза прочитать чтобы врубиться в это, все 500 комментов
Так вот он правильный ответ: Для запуска мемхака нужно отказать от Cjass сняв галочку EnableAdicParser а во вкладке vJass поставить DisableScriptOpt
Советую запустить сначала карту по отлову урона на мемхаке проверить на сохраняемость, если всё получается, тогда уже переносить мемхак в свою карту
WW перестаёт становиться DIS, когда у героя более одной абилки WW
типа что бы ты мог активировать другой, пока работает первый... но разблокировка идёт на все сразу (и на сам себя тоже)
Вы не правильно юзаете варкрафтоские переменные, например у вас событие с таймером. Он не дает каких либо варкрафтовским переменным данные (например, у вас на русском написано "Юнит триггера", это наверное GetTriggerUnit, но не существует его). Вам нужны какие-то данные от которых нужно отталкиваться, например берете группу и всех пикаете (есть GetEnumUnit() ). Когда вы всех пикаете через ForGroup, там перебирают всех через переменную GetEnumUnit
Если использовать другие события, то там аргументы передают. Например, юнит умирает (если не ошибаюсь) дает 4 переменные: TriggerUnit, убийца и умирающий. TriggerPlayer (если регистр события прикреплен на юнита, а не на игрока, то эта переменная не будет работать, не проверял). Хотя две переменные TriggerUnit и умирающий ссылаются на одного и того же юнита - умирающего юнита
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
Создание звука на ходу утечно и с этим ничего не сделать. Избежать утечки можно только если создать один звук, через редактор звука или в коде, и использовать всегда его.
Разумеется есть минус, в один момент времени звук можно играть только один раз. Если необходимо проигрывать один и тот же звук несколько раз одновременно, то придется костылить, например создавать 3-4 экземпляра одного звука и играть поочередно.
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.
сделать базу даных по названию...
строка[1] = "пехотинец"
строка[2] = "паладин"
тип юнита[1] = пехотинец
тип юнита[2] = паладин
цыкл
если введенная строка == строка[А]
создать юнита тип юнита[А]
name_to_trigger(string name) {
for (integer index = 0; index < name_array_index; index++) {
if name_array[index] == name {
return trigger_array[index];
}
}
}
Затем регистрируем все триггеры через register_trigger.
А после этого думаем, реально ли у нас столько абилок, что простая последовательность if name == "my_ability" then RunTrigger(my_ability) хуже этого решения
-- String Utility API
---@param i integer
---@return real
function I2R(i) end
---@param r real
---@return integer
function R2I(r) end
---@param i integer
---@return string
function I2S(i) end
---@param r real
---@return string
function R2S(r) end
---@param r real
---@param width integer
---@param precision integer
---@return string
function R2SW(r, width, precision) end
---@param s string
---@return integer
function S2I(s) end
---@param s string
---@return real
function S2R(s) end
---@param h handle
---@return integer
function GetHandleId(h) end
---@param source string
---@param start integer
---@param ending integer
---@return string
function SubString(source, start, ending) end
---@param s string
---@return integer
function StringLength(s) end
---@param source string
---@param upper boolean
---@return string
function StringCase(source, upper) end
---@param s string
---@return integer
function StringHash(s) end
---@param source string
---@return string
function GetLocalizedString(source) end
---@param source string
---@return integer
function GetLocalizedHotkey(source) end
Eternal soul,
Способ что предложил я - вы формируете БД и далее циклом пробегаетесь по массиву unit_type_string[i] и сравниваете его с вашей строкой. Если сравнение прошло успешно то по индексу unit_type[i] находите нужного юнита. Конечно конвертировать было бы более проффесионально, но это способ тоже будет работать.
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Через MIX-архивы, или просто кидать файлы в корневую папку с нужными путями.
К примеру есть мод UNION OF HIGH ELVES (Demo)как они его создали?
Я уже забодался говорить, что это аддон, а не мод. Создавать его очень геморройно, если не знать на 5+ устройство варика. Нужно:
Уметь работать с MPQ;
Шарить в устройстве системы запуска варика, копать её блокнотом;
Хорошо представлять себе внутренности архивов варика.
На освоение всего этого добра у тебя уйдет годик, если ты сообразительный. Конечно, всем хочется создать свой варкрафт с Hearthstone и джайнами, но мой тебе дружеский совет - делай доп. кампании. Будут допки - можно будет в любой момент пойти дальше, по примеру Shadow King.
Если вообще заморачиваться не хочешь - нарисуй кучу картинок с путями в фотошопе и просто подгружай их. Для кампании в наше время вес особой роли не играет.
Самый простой способ и один из самых криво выглядящих - чтобы герой качал подставные способности, которые никак не связаны с реальными - с универсальным описанием вида "первая способность", "вторая способность", а реальные способности чтобы выдавались и прокачивались триггерно на основе прокачки подставных.
ClotPh,вот есть модель с анимациями и есть твоя модель. Копируешь геометрию своей модели и копируешь ее в модель с анимациями потом у модели с анимациями удаляешь родную геометрию и поставляешь на ее место свою в редакторе анимаций потом крепишь части модели к соответственным костям.
Не вспомнишь никакой модели с анимированной текстурой в игре, чтобы посмотреть?
Короче, спасибо denismilyaev1 за ссылку на статью, ведь там как раз была строчка, которую надеялся найти в модели.
Сохранил как mdl, открыл в блокноте, вставил TVertexAnimId 0, в материал и сохранил в mdlvis как mdx. P. S. Как-то странно, что текстура двигается по горизонтали, а не вертикали.
Georgy12, call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область)
call CreateFogModifierRectBJ( true, игрок, FOG_OF_WAR_VISIBLE, область) вот так
либо
local fogmodifier loc = CreateFogModifierRect(whichPlayer, whichFogState, r, true, false)
call FogModifierStart(loc)
ты установил Player(3) значит это 4 игрок а ты в тест карту запускает 1 игрок пойми!!!
чтобы все игроки видел облость надо циклом от 0 до 11
Понял в чем был косяк, ни одна из функций модификации видимости не имела эффекта, потому что перед ней был следующий вызов модификации тумана с параментром true:
Только мемхак, если вас не устраивают баффы детектов (волшебный огонь, посох чужих глаз, порошок прозрения).
Стоит отметить видимость юнита и детекция - разные опции, инвизер может быть обнаружен но не видем в тумане войны.
Какой путь к текстуре в самой модели? В оригинальном Warcraft'е это "Textures\Meatwagon.blp".
Если у тебя путь "Textures\trupovozka_by_autorname.blp", то в Импорте так и пиши: "Textures\trupovozka_by_autorname.blp".
через obj не над там копируються вершины а то и несколько раз и слои слепляются в 1,3ds и через милкшарп,еси напрямую в мделвис то uv будет зекальна по y,а лутше перкинуть через макс(еси есть)
ну полигонам то укладывайся в 10к на супер хд моделей
материал ты не как не перенесешь только текстуру
материалы для вара создаются в warcraft model editor
Ась, что кого? для 126 отслеживание выделения в группе только на мемхаке, чистый 126 лесом, на рефордже через GetChild, вот ссылка, надо скопипастить на русском на Xgm
Но если принебречь этим множественным выбором и представить что выбор единичный
Тогда на гуи всё есть и получиться
C - Юнит выбран
У - Юнит такой-то, способность такая то есть, владелец выбранного=владелец выбирающего
Д -
set s = "" s = string
if p = GetLocalPlayer() then
set s = "Тут\\Типа\\Адрес\\Модели.mdx"
endif
call СоздатьСпецэффект(s,x,y) x,y - координаты, либо вместо них точка, либо виджет
а если по поводу вопроса
Но не понимаю, как именно применить тут эту систему
Система уже расписана, суть в том что у локального игрока создастся эффект с моделью, а у остальных с пустышкой и они ничего не увидят
set s = "" s = string пустышка
if p = GetLocalPlayer() then -- если локальный игрок тогда
set s = "Тут\\Типа\\Адрес\\Модели.mdx" -- модель уже не пустышка
алгоритм слишком сложной в нём только ты и можешь разобраться, но..
если бы у меня такое была, да и в принципе как я избавляюсь от бесконечных циклов, это просто ограничиваю его неким возможным числом и как только число переваливает, я вызываю дебаг, или же обрываю функцию не давая её дальше работать, ограничь работу каждого цикла например до 100 (очень сложно давать совет когда не особо понимаешь алгоритм)
Но у тебя тут либо бесконечный просто либо 1 вызывает другой до бесконечности
Если же первый оч просто отловить, то со вторым придётся попотеть и задебажить всё что движется после 100, пока на экран, в любом случае последнее что ты увидешь после зависания, это как числа перевалили за 100, я думаю они успеют покрыть экран, ну на крайняк расставь вот эти дебаги которые в прелоад пишут, у тебя не будетработать а у нас будет, ну я точно скину тебе лог
ScopteRectuS, Я решил проблему там баг, если указать регион как точку назначения портала, то с ним триггеры перестают работать. Я просто указал другой регион. biridius, Ну это альфа версия, за 5 мин сделал, знаю об утечках.
Я юзал морф, а не грейд. Грейд был в другой наработке, и там не было проблем с анимацией. В наработке с морфом нет никаких вейтов.
Всё остальное какая-то ерунда, какие переменные? Грейд делается и всё.
Отмена для меня преимущество такое себе
И тем не не менее, отменять грейд тебе нужно, потому преимущество вполне себе.
Я больше-то вот как раз вышеупомянутые баги имел в виду
Эффекты аур могут остаться на юните, с героями ещё хуже. Так-то всё написано тут, пункт 19.
Скорее всего при сохранении текстуры в .blp формате ты случайно зацепил кнопку "Инвертировать альфа канал." Попробуй в твоей текстуре нажать это и сохранить ее. Посмотрим на результаты.
Еще возможный вариант - не правильный способ фильтрования или как-то так.
xgm.guru/p/wc3/okno Вот ссылка на модели окон, можешь просто достать оттуда стекла. А вообще чтобы сделать полупрозрачное окно нужно сделать альфа-канал серым и дополнительно настроить модельку в вар3ме
Вроде как, движок варкрафта не поддерживает полупрозрачность. По крайней мере, все мои попытки импортировать полупрозрачную текстуру в модельку оканчивались замазанными частями текстуры.
В варе есть не мало полупрозрачных элементов, к примеру те же крылья Иллидана.
Прямо говоря, не сталкивался с подобным, но попробуй не с Рабочего стола проводить манипуляции, а из корня диска C:\
Также попробуй распаковать mix. Но раз карта защищённая, то спроси лучше quq_CCCP, он со многими видами защиты работал.
Вот, тут все что тебе нужно, в дальнейшем ищи статьи, если ничего не находишь, то задавай вопрос. LordDracula:
В карте есть эффект освещения, можно его юзать и прикреплять к примеру к костру. Выглядит очень атмосферно.
Да, я нашел эту статью уже и задействовал эффекты, находящиеся в ней(пост №5). Dragonear:
Если хотите, могу скинуть карту с различными моделями эффектов.
Proshel_Doty, о, это проблема с нормалями. Странно, что такое на хайве вообще пропустили.
Нужно материалы сделать односторонними, а потом через mdlvis обратить нормали у всех полигонов, которые стали прозрачными.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
» WarCraft 3 / Как использовать Jasshelper без редактора?
» WarCraft 3 / В ИИ не восстанавливается герой
» WarCraft 3 / Хэндл звук
» WarCraft 3 / Почему юнита не добавляет в группу
» WarCraft 3 / Соединение карт в кампанию
» WarCraft 3 / Нужны ли иконки приказа?
» WarCraft 3 / Тип переменной строка
» WarCraft 3 / Где скачать WE?
» WarCraft 3 / вопрос про GetAttackedUnitBJ
» WarCraft 3 / как сделать мод?
» WarCraft 3 / Анимированная текстура
» WarCraft 3 / Не раскрывается невидимость юнита
» WarCraft 3 / Вопрос по моделям .mdx
» WarCraft 3 / Лог вылета
» WarCraft 3 / Не работает триггер
» WarCraft 3 / Модель, прозрачные текстуры
» IrInA Host Bot / файл карты не найде?
» WarCraft 3 / Источник света
» WarCraft 3 / Спецэффект на анимацию
» WarCraft 3 / Просьба о помощи!
» WarCraft 3 / Выкидывает